package com.atguigu.exam.service;

import com.atguigu.exam.common.Result;
import com.atguigu.exam.entity.Notice;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 公告服务接口
 */
public interface NoticeService extends IService<Notice> {

    /**
     * 获取最新的公告
     * @param limit
     * @return
     */
    List<Notice> getLatestNotice(Integer limit);

    /**
     * 获取启用公告
     * @return
     */
    List<Notice> getActiveNotice();

    /**
     * 根据id获取公告
     * @param id
     * @return
     */
    Notice getNoticeById(Integer id);

    /**
     * 发布新公告
     * @param notice
     */
    void addNotice(Notice notice);

    /**
     * 更新公告信息
     * @param notice
     */
    void updateNotice(Notice notice);

    /**
     * 切换公告状态
     * @param id
     * @param isActive
     */
    void updateNoticeStatus(Integer id, Boolean isActive);

    /**
     * 获取所有公告
     * @return
     */
    List<Notice> getAllNotices();

    /**
     * 删除公告
     * @param id
     */
    void deleteNotice(Long id);
}